Short Message Service (SMS) is a protocol used for the transmission of short text messages from a first short message entity (SME), e.g., a mobile phone, a fax machine, a personal computer, and the like, to a second SME. Individual short message are limited to no more than 160 alphanumeric characters if using a Latin alphabet, or no more than 70 characters if using non-Latin characters such as Hebrew or Chinese. SMS-based services have become extremely popular, with the number of messages sent per month measured in the tens of billions.
After an SMS message is sent from a first SME, it is received by a Short Message Service Center (SMSC). The SMSC can be hardware, software, or a combination thereof that resides on a telecommunications network. The SMSC manages the so-called “store and forward” processes required to pass an SMS message from a first SME to a second SME (designated SME).
Once the SMSC receives the message from a first SME, the SMSC can direct the SMS message to the designated SME, or a group of designated SMEs. To properly direct an SMS message sent to a designated SME, the SMSC can query the home location register (HLR) to find status and location information for the designated SMEs. Once the HLR receives the request, it can respond to the SMSC with the designated SME status as either active or inactive, and the current location of the designated SME. If the HLR response is ‘inactive’, then the SMSC can assign a retransmission schedule to the SMS message. For example, the SMSC can store the SMS message for a period of time. While the SMSC stores the message, the HLR can periodically check the subscriber status and location according to a preset routine, the SMSC can periodically query the HLR for the subscriber status and location, or the HLR can wait for the subscriber to access his device or otherwise become visible to the network. Once the subscriber is visible, the HLR can send an SMS Notification to the SMSC, and the SMSC can attempt delivery of the SMS message to the subscriber's SME.
When the SMSC is ready to attempt delivery of the SMS message, the SMSC transfers the message in a Short Message Delivery Point-to-Point format to the serving system. The system pages the desired second SME, and if it responds, the SMS message can be delivered. After the SMS message is successfully delivered, the SMSC can receive verification that the message was received. The SMSC can categorize the SMS message as ‘sent’ and generally will not attempt to send the SMS message again. If, however, the SMS message is not delivered, then the SMSC can receive an error code. In such a case, the SMSC can store the SMS message again and a retransmission schedule can be assigned to the SMS message.
SMS messages sent to an SME may not be delivered for a number of reasons. Two common reasons for undelivered SMS messages are an absent subscriber and that the mobile memory capacity has been exceeded.
In the case of a genuine “absent subscriber” error code, an SME may be switched off or temporarily out of coverage. If the SMSC tries to deliver a message to an SME while either of these conditions exists, an “absent subscriber” error code can be generated. The SMSC can store the SMS message and reattempt delivery according to an appropriate retransmission schedule. An “absent subscriber” retransmission schedule can allow for a number of retransmission attempts in case the SME has temporarily gone out of coverage (e.g. into a tunnel). If the SME again becomes available, e.g., the SME is powered on, changes cells, receives or makes a voice call, sends a short message, the mobile phones periodic location update timer expires, or the like, then the SMSC can be informed and the message waiting in the SMSC can be forwarded for delivery to the SME.
It should be noted that when an SME becomes temporarily unavailable and becomes available again in the same cell the HLR will not necessarily receive any notification, or pass any such notification to the SMSC, that the SME has become available unless, for example, the SME is powered on (typically after being powered down), changes cells, receives or makes a voice call, sends a short message, the SME periodic location update timer expires, or the like. This, i.e., in case an SME became temporarily unavailable and available again in the same cell, is one reason that an SMSC can assign retransmission schedule to an undelivered SMS message.
As with other error codes, the SMSC can receive an “absent subscriber” error code even though the device is turned on and currently registered on the network. It has been noted, for example, that some devices can generate an “absent subscriber” error code if the device is running a data session, for example, actively setting up a PDP or transferring on that context, when delivery of the SMS message is attempted. Other error codes can also be falsely generated. In such cases, the falsely generated error code will induce the SMSC to assign a standard retransmission schedule to the undelivered SMS message, though the SME is ready to receive the SMS message immediately.
Retransmission schedules can vary according to the error code received. In the case of a “memory capacity exceeded” error, for example, the SMSC can continually attempt retransmission of the SMS message with gradually lengthening intervals. The retransmission attempts can continue for the validity period of the message. Some other error codes can induce the SMSC to purge the SMS message and forego attempted redelivery.
There are other causes of failed SMS message delivery. These less common errors encountered, e.g. “unidentified subscriber,” are subject to different retransmission schedules according to the error condition and can also be falsely generated.